package com.umpay.dto.merBusi.req.consume;

import org.hibernate.validator.constraints.NotEmpty;

import com.umpay.annotation.Pattern;
import com.umpay.dto.merBusi.req.CommonBusiReq;

import java.util.StringJoiner;

/**
 * 
 * @ClassName: ConsumeBalanceBusiReq  
 * @Description: 余额消费业务处理请求类 
 * @author chenxinyu  
 * @date Mar 16, 2018
 */
public class ConsumeBalanceBusiReq extends CommonBusiReq {
	
//	@NotEmpty(message = "用户号不能为空")
	@Pattern(message="用户号格式不正确")
	private String userId;	//变长20

    @Pattern
    private String merCustId;
	
	@NotEmpty(message = "账户类型不能为空")
	@Pattern(message="账户类型格式不正确")
	private String accType;	//定长2
	
	@NotEmpty(message = "商户编号不能为空")
	@Pattern(message="商户号格式不正确")
	protected String merId;
	
	@NotEmpty(message = "商户流水号不能为空")
	@Pattern(message="商户流水号格式不正确")
	private String merTrace;	//变长32	商户流水号
	
	@NotEmpty(message = "订单号不能为空")
	@Pattern(message="订单号格式不正确")
	private String tradeNo;	//变长8	订单号
	
	@NotEmpty(message = "金额不能为空")
	@Pattern(message="金额格式不正确")
	private String amount;	//变长13	金额
	
	@NotEmpty(message = "业务产品号不能为空")
	@Pattern(message="业务产品号格式不正确")
	private String bProductId;	//变长8	业务产品号
	
	@NotEmpty(message = "支付产品号不能为空")
	@Pattern(message="支付产品号格式不正确")
	private String pProductId;	//定长8	产品号
	private String notifyUrl;	//变长128	后台通知地址
	private String remark;	//变长128	备注信息
	

	public String getUserId() {
		return userId;
	}
	public void setUserId(String userId) {
		this.userId = userId;
	}
	public String getMerId() {
		return merId;
	}
	public void setMerId(String merId) {
		this.merId = merId;
	}
	public String getMerTrace() {
		return merTrace;
	}
	public void setMerTrace(String merTrace) {
		this.merTrace = merTrace;
	}
	public String getTradeNo() {
		return tradeNo;
	}
	public void setTradeNo(String tradeNo) {
		this.tradeNo = tradeNo;
	}
	public String getAmount() {
		return amount;
	}
	public void setAmount(String amount) {
		this.amount = amount;
	}
	public String getbProductId() {
		return bProductId;
	}
	public void setbProductId(String bProductId) {
		this.bProductId = bProductId;
	}
	public String getpProductId() {
		return pProductId;
	}
	public void setpProductId(String pProductId) {
		this.pProductId = pProductId;
	}	
	public String getNotifyUrl() {
		return notifyUrl;
	}
	public void setNotifyUrl(String notifyUrl) {
		this.notifyUrl = notifyUrl;
	}
	public String getRemark() {
		return remark;
	}
	public void setRemark(String remark) {
		this.remark = remark;
	}
	
	public String getAccType() {
		return accType;
	}
	public void setAccType(String accType) {
		this.accType = accType;
	}

    public String getMerCustId() {
        return merCustId;
    }

    public void setMerCustId(String merCustId) {
        this.merCustId = merCustId;
    }

    @Override
    public String toString() {
        return new StringJoiner(", ", ConsumeBalanceBusiReq.class.getSimpleName() + "[", "]")
                .add("userId='" + userId + "'")
                .add("merCustId='" + merCustId + "'")
                .add("accType='" + accType + "'")
                .add("merId='" + merId + "'")
                .add("merTrace='" + merTrace + "'")
                .add("tradeNo='" + tradeNo + "'")
                .add("amount='" + amount + "'")
                .add("bProductId='" + bProductId + "'")
                .add("pProductId='" + pProductId + "'")
                .add("notifyUrl='" + notifyUrl + "'")
                .add("remark='" + remark + "'")
                .add("rpid='" + rpid + "'")
                .add("version='" + version + "'")
                .add("reqDate='" + reqDate + "'")
                .add("reqTime='" + reqTime + "'")
                .add("accessName='" + accessName + "'")
                .add("accessType='" + accessType + "'")
                .add("depBankMerId='" + depBankMerId + "'")
                .toString();
    }
}
